专利摘要:
本發明論述一種機制,其用於允許依照UEFI裝置中之韌體實施UEFI規範驅動程式簽署及認證變數元素,同時保護系統安全資料庫免於經受未經授權之修改,該系統安全資料庫保持核准密鑰庫以及允許及禁止的程式之列表。
公开号:TW201303636A
申请号:TW101112299
申请日:2012-04-06
公开日:2013-01-16
发明作者:Jeffery Jay Bobzin
申请人:Insyde Software Corp;
IPC主号:G06F9-00
专利说明:
用於處理改變依照統一可延伸韌體介面計算裝置中之系統安全資料庫及韌體儲存區請求的系統及方法 相關申請案
本申請案係關於2011年4月8日提出申請的題為「System and Method for Processing Requests to Alter a System Security Database in a Unified Extensible Firmware Interface(UEFI)-Compliant Device」的美國臨時專利申請案第61/473234號且主張其權益,該美國臨時專利申請案之全部內容以引用方式併入本文中。
統一可延伸韌體介面(UEFI)為由非營利產業機構建立的規範,該規範詳述了作業系統與計算裝置(諸如(但不限於)個人電腦(PC))所包括的韌體之間的程式設計介面。UEFI規範描述一套工具,計算裝置可使用該套工具以有組織的方式自功率施加狀態移至完全可操作狀態。計算裝置由包括在該裝置內之韌體初始化,且該韌體提供一定範圍的軟體服務,其促進啟動作業系統以及提供此等服務之較小子集,在已啟動作業系統之後,此等服務持續可用。UEFI規範告知所要結果,但故意未指定實施之內部策略。UEFI韌體規範替代由產業先前使用且通常被稱為傳統BIOS之較早的OS/韌體介面。
UEFI規範提供稱作驅動程式簽章核對之設施,來自其他方之軟體可藉由該設施使用公開/私密密鑰密碼技術而「簽署」於軟體來源處。在允許該軟體操作之前,該簽章由計算裝置之韌體驗證。該簽章核對集中於經添加以配置可選組件(插入板)之軟體及由作業系統為早期啟動步驟而供應之軟體(OS啟動載入器)。用核准密鑰庫來實現簽章核對。計算裝置必須注意不允許未經授權的軟體元件具有修改核准密鑰庫的任何能力,因為此舉將允許惡意軟體元件使簽章核對失效。
當實施於計算裝置中時,UEFI韌體之機器碼及韌體所使用之所有永久資料駐留於唯讀記憶體(ROM)中。在許多狀況下,ROM為稱作快閃ROM之電可抹除矽裝置。快閃ROM具有以下特性:快閃ROM可由電氣命令抹除,且可接著寫入個別元件,且裝置將不確定地保留資料。當首先將功率施加於計算裝置時,系統執行稱作重設之過程,該過程清除該狀態至已知條件且開始執行韌體。自快閃ROM讀取韌體。在其他服務中,韌體負責操作計算裝置直至可執行啟動過程,該啟動過程將計算裝置之作業系統載入至記憶體中。一旦經載入,作業系統負責計算裝置之正常操作。應注意,計算裝置之防毒程式需要在該等程式可操作之前載入作業系統。
可將快閃ROM之內容在邏輯上分割為若干功能劃分或區域。一個此區域為韌體儲存區,其包括起動韌體及安全韌體模組之可載入影像,且必須被保護不受除已被授權更新韌體儲存區之實體以外之任何實體改變。稱作認證變數區或儲存區之第二區域保存在UEFI規範中定義的認證變數,且用以保存UEFI定義之安全資訊(安全資料庫)。除UEFI定義之資訊外,認證變數儲存區可用以儲存與電腦之最後使用相關的使用者定義之資料。因為該使用者定義之資料含有安全資料及潛在的敏感使用者資料,所以UEFI規範提供以下情形:必須藉由在安全資料庫內存在識別關鍵資料來保護認證變數區/儲存區不被除彼等經授權之實體以外之任何實體改變。第三區域(亦即,UEFI變數儲存區)含有較低安全資訊,該資訊可由使用者程式自由地更新。在各種平臺上存在某些其他區域,每一區域具有唯一的更新限制,且可擴展本文所述的方法以使之亦免於對此等區域進行未經授權之修改。
計算裝置含有稱作中央處理單元(CPU)之一或更多個元件,當在操作中時,該等CPU可自計算裝置讀取,且亦執行輸入-輸出命令以抹除及/或寫入快閃ROM。CPU具有正常操作模式及稱作系統管理模式(SMM)之第二操作模式。當CPU處於正常操作模式時,CPU可存取除專用於SMM之某些記憶體區域之外的電腦之所有元件。相比之下,當CPU於SMM中操作時,CPU能夠存取計算裝置之所有元件(包括專用記憶體)。電氣信號可在計算裝置之電路系統內變得可用,該電氣信號可指示CPU何時於SMM中操作。CPU裝置可針對由稱作系統管理中斷(SMI)事件(包括由韌體觸發之SMI事件)之數個觸發器自正常操作模式轉變至SMM。可利用的精確觸發器與其他系統設計略有不同,但在使用平臺合適的觸發器時,結果始終為主記憶體中之執行被立即暫停且執行開始於SMM記憶體中之特定位置。某些計算裝置亦含有硬體電路,該硬體電路可偵測系統是否處於SMM且能夠在系統不處於SMM時停用快閃ROM抹除及寫入操作。
遺憾地,現今存在各種各樣的軟體,該等軟體由未經授權的第三方建立且具有損害或破壞計算裝置(諸如PC)之正確操作的明確意圖。給定名稱「電腦病毒」或「有毒軟體」,此等惡意軟體元件愈加以啟動過程為目標,作為在已載入預防性(例如,防毒)軟體之前控制計算裝置之方法。啟動攻擊軟體之示例性形式被稱作最高權力的使用者套件(root-kit)或「特洛伊啟動型病毒」。
需要不定時地更新快閃ROM(或其他ROM)中含有之韌體及相關資料,而不會因允許最高權力的使用者套件或特洛伊啟動型病毒存取韌體而危及計算裝置之安全性。儘管快閃ROM可具有稱作區塊寫入致能之內在保護裝置,但此等裝置不適合保護在系統操作期間需要更新的駐留於快閃記憶體之資料項目,同時將執行更新之能力僅限於由可信賴的主管機構產生之彼等裝置。內在快閃ROM保護通常由位元陣列組成,該等位元陣列在設定時防止將快閃ROM寫入至子區域。然而,此種類型之完整寫入防止不允許可信賴的主管機構所執行之選擇性更新。
本發明之實施例提供一種機制,其用於允許依照UEFI裝置中之韌體實施UEFI規範驅動程式簽章核對及認證變數元素,同時防止對快閃ROM之區域進行未經授權之修改。藉由本文所述之過程,將不受未經授權之修改的保護提供至數個安全性關鍵元件,該未經授權之修改將使計算裝置易受惡意軟體攻擊,該等安全性關鍵元件包括:(1)快閃ROM之認證變數區(含有安全資料庫);(2)快閃ROM韌體儲存區之含有韌體模組之可載入影像的彼等部分;以及(3)韌體模組之SMM記憶體中的可執行影像,該等韌體模組核對授權且執行對快閃ROM之安全資料庫及韌體儲存區域的更新。在認證變數區中含有的安全資料庫保持各種資訊,其包括核准密鑰庫以及允許及禁止的程式之列表,而含有韌體模組之可載入影像的韌體儲存區之部分包括起動韌體模組與安全韌體模組兩者。更特定言之,本發明之實施例利用僅能夠在CPU處於SMM時存取及執行之韌體模組。因此,本發明之韌體模組避開OS或使用者程式之檢查及修改,且可以不同於觀察或修改之方式執行對UEFI簽章核對及其他技術的安全處理。
在一個實施例中,一種用於處理依照統一可延伸韌體介面(UEFI)計算裝置中之系統安全資料庫請求的方法包括以下步驟:自作業系統模組接收已簽署之系統安全資料庫修改請求。該已簽署之請求設法執行依照UEFI計算裝置中之系統安全資料庫的改變。該請求由韌體請求接收模組處理,該韌體請求接收模組由在計算裝置中之中央處理單元(CPU)於正常CPU模式中操作時可存取的程式碼組成。該方法觸發使用請求接收模組將CPU自正常CPU模式轉變至系統管理模式(SMM),且檢定經處理請求之合法性以便用僅在CPU處於SMM時可執行之韌體檢定模組執行系統安全資料庫之改變。該方法額外地驗證經處理請求中含有之簽章以便執行系統安全資料庫之改變。使用僅在CPU處於SMM時可執行之韌體驗證模組發生驗證。該方法在成功驗證請求中之簽章之後執行對使用韌體更新模組作出請求的系統安全資料庫之改變。該韌體更新模組僅在CPU處於SMM時才可執行。
在另一實施例中,一種用於更新依照統一可延伸韌體介面(UEFI)計算裝置中之快閃唯讀記憶體(ROM)中之韌體儲存區域的方法包括以下步驟:在依照UEFI裝置處接收下載更新套裝,該下載更新套裝包括可執行更新程式、韌體儲存區之替代影像及替代影像之已簽署散列。該方法亦包括以下步驟:在依照UEFI計算裝置中之中央處理單元(CPU)於正常CPU模式操作時,用更新程式觸發CPU自正常CPU模式轉變至系統管理模式(SMM)。該方法進一步用僅在CPU處於SMM時才可執行之SMM駐留韌體驗證簽章及替代影像,且用替代影像更新韌體儲存區。使用僅在CPU處於SMM時才可執行之SMM駐留韌體發生更新。
在實施例中,一種依照統一可延伸韌體介面(UEFI)計算裝置包括中央處理單元(CPU),該CPU經配置以執行韌體請求接收模組。該請求接收模組自作業系統模組接收已簽署系統安全資料庫修改請求並處理該請求。該請求設法執行依照UEFI計算裝置中之系統安全資料庫的改變。該請求接收模組在CPU於正常CPU模式操作時可執行,且在處理所接收請求之後觸發CPU自正常CPU模式轉變至系統管理模式(SMM)。CPU亦執行韌體檢定模組,該韌體檢定模組檢定經處理請求之合法性以便執行系統安全資料庫之改變。韌體檢定模組僅在CPU處於SMM時執行。CPU進一步執行韌體驗證模組。韌體驗證模組驗證在經處理請求中含有之簽章以便執行系統安全資料庫之改變。韌體驗證模組亦僅在CPU處於SMM時執行。CPU額外地執行韌體更新模組。該韌體更新模組在成功驗證簽章之後執行對系統安全資料庫之所請求的改變。該韌體更新模組僅在CPU處於SMM時執行。
在另一實施例中,一種依照統一可延伸韌體介面(UEFI)計算裝置包括中央處理單元(CPU),該CPU經配置以執行下載更新套裝,該下載更新套裝包括可執行更新程式,該可執行更新程式用於更新依照UEFI計算裝置中之快閃唯讀記憶體(ROM)中之韌體儲存區域。該更新套裝進一步包括韌體儲存區之至少一部分之替代影像及替代影像之已簽署散列。該更新程式觸發CPU自正常CPU模式轉變至系統管理模式(SMM)。該裝置中之CPU亦執行用於驗證簽章及替代影像的SMM駐留韌體。用於驗證簽章及替代影像的SMM駐留韌體僅在CPU處於SMM模式時執行。另外,該裝置中之CPU執行用於用替代影像更新韌體儲存區的SMM駐留韌體。用於更新韌體儲存區的SMM駐留韌體僅在CPU處於SMM模式時執行。
本發明之實施例提供一種供依照UEFI計算裝置執行軟體更新之驅動程式簽章核對的機制,該機制以大大限制有毒軟體篡改核准密鑰庫及保持於系統安全資料庫中之其他資訊之能力的方式論述於UEFI規範中。藉由將對保持系統安全資料庫及相關聯資訊之認證變數的存取限於本文所述之技術,可藉由將處理限於發生在SMM內部來實施由UEFI展望之安全處理。因為SMM記憶體避開OS或其他程式之檢查,所以未經授權之第三方觀察且接著修改安全過程的能力變得顯著減小。
UEFI規範之一個主要安全特徵為允許及禁止的程式之列表(其被允許或禁止以執行需要簽章核對之某些類型之軟體更新,及能夠添加至此等列表之代理程式之識別)由依照UEFI計算裝置維護。然而,若用於修改列表及允許代理程式之電腦指令存在於正常記憶體(在CPU處於正常操作模式時可存取)中,則決定指令之真實性的能力大大降低,此係因為指令可能來自操作於同一記憶體空間中之惡意軟體而非來自合法的安全軟體。本發明之實施例藉由確保僅經製造商核准及核對之軟體可駐留於SMM記憶體中且確保僅在CPU處於SMM時才處理所有指定的安全更新而解決該問題。
本發明之實施例在執行未在工廠指定及載入之任何軟體之前關閉及鎖定對SMM記憶體之存取,該軟體具有經受後工廠修正(僅由本文所述之安全韌體更新過程應用)的工廠影像。對存取及修正之該限制大大增強計算裝置執行UEFI規範中展望之簽章核對的能力。經由使用集中於安全處理更新請求之韌體模組,可處理更新以確保請求僅來源於有效實體。
第1圖圖示由本發明之實施例執行以利用依照UEFI裝置中之韌體模組的一系列示例性步驟。該系列步驟在韌體請求接收模組接收軟體更新之已簽署請求時開始,該軟體更新將需要改變認證變數,諸如保持系統安全資料庫之變數,該系統安全資料庫包括用以執行簽章核對之核准密鑰庫(步驟102)。可經由UEFI執行時間介面接收請求。應注意,韌體請求接收模組在CPU於正常模式中操作時可操作且可存取。在接收到請求後,韌體請求接收模組核對請求格式,並保存用於基於SMM之程式碼的特定記憶體位置資訊,且藉由適合於用於處理請求之系統平臺的特定方法使CPU轉變至SMM(步驟104)。舉例而言,在一些系統中,該轉變可藉由調用SMI中斷而經觸發。一旦CPU於SMM中操作,僅在CPU於SMM中操作時才操作之韌體檢定模組接收請求,且藉由對照先前記錄之請求接收模組載入位址核對SMM請求在記憶體中之位置且藉由檢查記憶體中之套裝模組之影像以確認已改變影像,檢定該請求實際上來自韌體請求接收模組(步驟106)。若未檢定該請求,則拒絕該請求(步驟108)。應瞭解,無效請求可觸發顯示或登入警報信號,且將UEFI定義之錯誤碼傳回至請求更新之軟體。若請求被檢定為來自請求接收模組,則僅可在SMM中操作之韌體驗證模組檢查包括於資料庫更新請求中之簽章資訊,且使用系統安全資料庫中之至少一個密鑰執行簽章核對(步驟110)。應注意,在其他實施例中,系統可在更大或更小安全性之條件下操作,且簽章核對之精確策略或規則可根據系統狀態而不同。然而,不管條件之此等變化如何,對於本發明之實施例而言,簽章核對之當前可應用的策略由SMM駐留模組根據記錄於受保護的系統安全資料庫中之狀態資訊來應用。
計算裝置可利用公開/私密密鑰加密作為認證變數更新驗證過程之部分。更新請求可包括內容及內容之至少部分的已簽署散列,該散列由請求實體擁有之私密密鑰簽署或加密。作為驗證過程之部分,驗證模組可重建更新內容之部分的散列(使用同一散列演算法簽署該散列)、用來自系統安全資料庫之相應的且經授權的公開密鑰解密已簽署散列,並比較原始散列與新散列。若經授權的密鑰不存在於系統安全資料庫中及/或散列為不相同的,則請求為無效的(步驟112),且拒絕更新。若請求被決定為有效的,則僅在CPU處於SMM時才操作之韌體更新模組處理該請求,且更新快閃ROM(步驟114)。
在一個實施例中,在CPU處於正常模式時操作之非安全韌體請求接收模組可用以接收更新未受簽章更新限制保護之快閃記憶體區域的請求。非安全請求接收模組可封裝請求,且調用SMM進行處理。一旦SMM經調用,此等請求可由操作於SMM中之韌體模組接收並處理,該韌體模組執行對快閃ROM之非安全區域之所請求的修改。執行該處理,因為快閃記憶體之基於SMM之保護係針對整個裝置,且因此必須經由SMM投送所有快閃記憶體變化。
在一個實施例中,計算裝置可包括控制電路系統之韌體模組,該電路系統用以藉由停用在SMM外部產生之快閃ROM抹除及寫入操作而保護快閃記憶體。當在將功率施加於計算裝置之後韌體開始執行時,快閃記憶體保護電路系統並不操作。因此,提供韌體模組,其執行平臺特定操作以在引入任何不可信賴的韌體之前,在啟動操作之適合點處啟用快閃記憶體保護電路系統。一旦經設定,快閃記憶體保護電路系統不可逆(藉由重設除外)。因為在重設時系統返回至自快閃ROM獲得之可信賴的程式碼,所以該演算法確保在系統操作之任何時刻,快閃記憶體韌體儲存區皆不可用於受不可信賴的程式碼改變。
第2圖圖示使用本文所述之機制實施更新快閃ROM之所有或一部分韌體儲存區域之過程的一系列示例性步驟。該過程大體類似於第1圖中所述之過程,從而允許再使用許多共用韌體組件及有效使用韌體資源,但該過程確實包括某些差異。該系列步驟在將韌體更新套裝下載至依照UEFI裝置且加以執行時開始(步驟202)。該更新套裝包括若干部分,該等部分包括更新起始程式,該更新起始程式為經設計以在安裝之作業系統中操作的可執行程式。除更新起始程式之外,下載更新套裝包括所有或選定部分之韌體儲存區的替代影像,以及含有更新程式之指令的資料區塊,包括(但不限於)目標系統之系統識別符。更新套裝亦包括替代影像之已簽署散列。新影像及資料區塊之已簽署散列由定義在UEFI規範中之密碼方法準備,該等密碼方法類似於上文對於更新認證變數區之簽署所述的彼等方法。所有或部分之更新套裝的位元組在OEM網站經簽署且由韌體核對。以如下方式簽署下載之更新套裝:使得有可能在建立下載後使韌體決定無下載部分已被修改。
在一個實施例中,除上文詳述之組件之外,下載套裝亦可含有補充性韌體模組以執行抹除及寫入快閃記憶體影像之實際過程。補充性韌體模組(若存在)亦由上文所述之過程簽署且類似地加以驗證。
更詳細地,更新起始程式載入至記憶體中,且核對更新套裝之其他部分的完整性。若下載完整性核對為成功的,則更新起始程式準備記憶體位置資訊以用於將發生在SMM中之即將到來的操作,且使用適合於經更新之裝置平臺之方法用信號通知轉變至SMM的請求(步驟204)。應瞭解,可存在數個類似的更新起始程式,每一更新起始程式具有不同變化,該等變化經設計以於特定作業系統中操作且經設計以在本發明之範疇內更新的平臺上正確地操作。作為請求之結果,CPU經由平臺適合技術轉變至SMM(步驟204)。在一個實施例中,一旦CPU已切換至SMM,僅在SMM內操作之韌體檢定模組即可接收更新請求,且檢定請求更新起始程式之識別(步驟206)。舉例而言,藉由對準先前記錄之更新起始程式載入位址核對SMM請求在記憶體中的位置且藉由檢查記憶體中之更新套裝之影像以確認尚未改變影像來檢定請求。若未檢定請求(步驟207),則拒絕請求及更新(步驟208及步驟212),在該狀況下,CPU使用錯誤碼返回至正常記憶體模式。另一方面,若檢定請求(步驟207),僅在SMM中操作之韌體驗證模組試圖藉由使用已簽署散列檢定替代韌體影像來驗證更新請求。可存在駐留於工廠安裝之快閃ROM影像中的一個或可能多個公開密鑰,其經啟用以驗證韌體更新影像簽章。此等密鑰駐留於受保護區域中之一者中,但根據系統之特定需求可駐留或可不駐留於認證變數區中。接收更新請求之SMM駐留韌體驗證模組首先執行檢定更新程式所提交之更新由經授權以執行韌體更新之私密密鑰簽署所需的密碼核對。只有當密碼核對通過時,才會將更新傳遞至負責抹除及寫入韌體儲存區域之韌體,否則將拒絕更新(步驟212)。另一方面,在成功驗證之後,僅可在CPU處於SMM時執行之韌體更新模組更新韌體儲存區(步驟214)。在更新韌體儲存區之後,在使用用於更新操作之成功碼返回至正常記憶體之前,UEFI裝置將再啟動。在一些實施例中,為了額外安全,可採用額外安全預防。舉例而言,在一個實施例中,UEFI裝置可再啟動隨後驗證,且在執行韌體更新之前再啟動隨後驗證。在返回至更新過程後,可再次在執行更新之前驗證更新套裝。在此類實施中,UEFI裝置將在更新之後且在返回至正常記憶體之前第二次再啟動。
快閃ROM之實際抹除及寫入可需要數秒,且在系統處於SMM時,系統不回應於其他使用者程式。為了提供較好的使用者體驗,當需要較大的更新時,在一個實施例中,可藉由返回至主記憶體中之呼叫程式(變數更新套裝程式或更新程式)的機制將更新之實際處理分成較小部分,其中旗標指示部分的完成。此操作分離可潛在地發生若干次。在接收到此部分完成旗標之後,呼叫程式暫停操作達某一短暫時段以允許其他使用者程式暫時地執行且接著用繼續旗標再進入SMM。在更新程式之狀況下,可在返回至主記憶體後更新使用者螢幕上之直觀進度指示。在再進入SMM後,SMM韌體採用確保在暫停期間不修改在進行中之更新之記憶體影像所需的任何步驟。僅為了清楚起見,自第1圖及第2圖中省略此可選步驟。
第3圖圖示適合於實行本發明之實施例的示例性環境。依照UEFI計算裝置300包括能夠在正常模式及SMM中操作之CPU 302。計算裝置300可為PC、膝上型電腦、平板計算裝置、伺服器、智慧型電話或配備有處理器且能夠遵照UEFI規範之需求的某一其他類型的計算裝置。計算裝置300亦可包括記憶體304,諸如隨機存取記憶體(RAM)。儲存於硬驅動機或等效大量儲存裝置上、在計算裝置300中或與計算裝置300通訊之作業系統312可載入至記憶體304中作為計算裝置所執行之啟動過程的部分。
計算裝置300亦可包括快閃ROM 320。在一些狀況下,系統設計可併有多個快閃ROM裝置。在該情況下,使用多個快閃ROM裝置,可使用相同程序存取所有快閃ROM裝置,且所有快閃ROM裝置經受上文陳述之同一安全過程。快閃ROM 320可包括上文所述之韌體模組,該等韌體模組可於計算裝置之操作的不同時刻操作。舉例而言,快閃ROM 320可包括在CPU 302處於正常操作(非SMM操作)340時可操作的韌體請求接收模組321。快閃ROM 320亦可保持韌體檢定模組322、韌體驗證模組323及韌體更新模組324,該等模組僅在CPU於SMM 350中操作時才可操作。儘管本文中之描述將韌體檢定模組322、韌體驗證模組323及韌體更新模組324描述為單獨模組,但應瞭解,在不脫離本發明之範疇的情況下,可將模組之功能性組合至更小或更大數目個模組中。
快閃ROM 320可在邏輯上分割成若干功能區域。因此,快閃ROM 320可包括保持系統安全資料庫331之認證變數區330。系統安全資料庫331保持用於UEFI規範中陳述之簽章核對之經授權的密鑰,且僅在CPU於SMM 350中操作時才可存取。類似地,快閃ROM 320亦可包括韌體儲存區332,韌體儲存區332保持起動及安全韌體模組之可載入影像333。快閃ROM 320亦可包括UEFI變數儲存區域334。應瞭解,在不脫離本發明之範疇的情況下,快閃ROM 320可以不同方式進行邏輯分割以包括不同於或涵蓋本文所述之區域的其他區域。
本發明之實施例可全部或部分地提供為實施於一或更多個實體媒體上或中之一或更多個非暫時性電腦可讀取程式。舉例而言,媒體可為軟碟、硬碟、光碟、數位多功能光碟、快閃記憶體、PROM、MRAM、RAM、ROM或磁帶。通常,可用任何程式設計語言實施電腦可讀取程式。可使用之語言的一些實例包括FORTRAN、C、C++、C#、Python、ActionScript、JavaScript或Java。軟體程式可儲存於一或更多個媒體上或中作為目標碼。可使用硬體加速,且所有或一部分之程式碼可執行於FPGA、特殊應用積體處理器(ASIP)或特殊應用積體電路(ASIC)上。程式碼可執行於虛擬化環境中,諸如虛擬機中。執行程式碼之多個虛擬機可駐留於單一處理器上。
由於在不脫離本發明之範疇的情況下可進行某些變化,所以意欲將以上描述中含有或隨附圖式中圖示之所有物質解釋為說明性的而並非拘泥於字面意義。此項技術之從業人員將認識到,在不脫離本發明之範疇的情況下可改變圖式中所示之一系列步驟及架構,及本文中含有之說明為本發明之許多可能敘述的單一實例。特定言之,應注意,在某些實施例內,第2圖中所述之步驟可經修改或由類似過程替代,而無需改變第1圖之步驟。此外,儘管為了易於闡釋起見,本文中之描述論述了認為係特定軟體模組所有的各種功能性,但應瞭解,在不脫離本發明之範疇的情況下,模組可被不同地命名或以未特定論述之方式被組合或分割以便提供相同功能性。
本發明之示例性實施例之以上描述提供說明及描述,但不意欲為詳盡的或將本發明限於所揭示之精確形式。根據以上教示,修改及變化為可能的,且可自本發明之實踐獲取修改及變化。舉例而言,儘管已描述一系列動作,但可在與本發明之原理一致的其他實施中修改動作之次序。此外,可並行地執行非附屬動作。
102‧‧‧步驟
104‧‧‧步驟
106‧‧‧步驟
107‧‧‧步驟
108‧‧‧步驟
110‧‧‧步驟
111‧‧‧步驟
112‧‧‧步驟
114‧‧‧步驟
202‧‧‧步驟
204‧‧‧步驟
206‧‧‧步驟
207‧‧‧步驟
208‧‧‧步驟
210‧‧‧步驟
211‧‧‧步驟
212‧‧‧步驟
214‧‧‧步驟
300‧‧‧計算裝置
302‧‧‧CPU
304‧‧‧記憶體
312‧‧‧作業系統
320‧‧‧快閃ROM
321‧‧‧韌體請求接收模組
322‧‧‧韌體檢定模組
323‧‧‧韌體驗證模組
324‧‧‧韌體更新模組
330‧‧‧認證變數區
331‧‧‧系統安全資料庫
332‧‧‧韌體儲存區
333‧‧‧起動及安全韌體模組之可載入影像
334‧‧‧UEFI變數儲存區域
340‧‧‧正常操作/非SMM操作
350‧‧‧SMM
併入本說明書中且構成本說明書之一部分的隨附圖式圖示本發明之一或更多個實施例,且與描述一起有助於闡釋本發明。在圖式中:第1圖圖示由本發明之實施例執行以利用依照UEFI裝置中之韌體模組的一系列示例性步驟;第2圖圖示由本發明之實施例執行以利用依照UEFI裝置中之韌體模組更新快閃ROM之韌體儲存區的一系列示例性步驟;以及第3圖圖示適合於實行本發明之實施例的示例性環境。
权利要求:
Claims (18)
[1] 一種用於處理一依照統一可延伸韌體介面(UEFI)計算裝置中之系統安全資料庫請求的方法,其包括:自一作業系統模組接收一已簽署系統安全資料庫修改請求,該請求設法執行對該依照UEFI計算裝置中之一系統安全資料庫之一改變,該請求由一韌體請求接收模組處理,該請求接收模組在該計算裝置中之一中央處理單元(CPU)於一正常CPU模式中操作時可執行;使用該請求接收模組來觸發該CPU自該正常CPU模式至一系統管理模式(SMM)之一轉變;檢定該經處理請求之一合法性以便用僅在該CPU處於SMM時才可執行之一韌體檢定模組執行一系統安全資料庫之一改變;驗證在該經處理請求中含有之一簽章以便執行該系統安全資料庫之一改變,使用僅在該CPU處於SMM時才可執行之一韌體驗證模組發生該驗證步驟;以及執行使用一韌體更新模組作出請求的該系統安全資料庫之該改變,在該簽章之一成功驗證後發生該改變,該韌體更新模組僅在該CPU處於SMM時才可執行。
[2] 如申請專利範圍第1項之方法,其中該韌體驗證模組驗證該請求中之該簽章以便使用儲存於一系統安全資料庫中之一密鑰執行該系統安全資料庫之一改變。
[3] 如申請專利範圍第1項之方法,其進一步包括:用該韌體請求接收模組保存與用於執行一系統安全資料庫之一改變之該請求相關的記憶體位置資訊,以供該韌體檢定模組使用,在觸發該轉變至SMM之前保存該記憶體位置資訊。
[4] 如申請專利範圍第3項之方法,其中該檢定步驟係藉由該韌體檢定模組對照一先前記錄之請求接收模組載入位址核對記憶體中之該保存位置而執行。
[5] 如申請專利範圍第1項之方法,其中該韌體請求接收模組、該韌體檢定模組、該韌體驗證模組、該韌體更新模組及該系統安全資料庫儲存於快閃ROM中。
[6] 一種用於更新一依照統一可延伸韌體介面(UEFI)計算裝置中之一快閃唯讀記憶體(ROM)中之一韌體儲存區域的方法,其包括:在該依照UEFI裝置處接收一下載更新套裝,其包括一可執行更新程式、該韌體儲存區之一替代影像及該替代影像之一已簽署散列;在該依照UEFI計算裝置中之一中央處理單元(CPU)於一正常CPU模式中操作時,用該更新程式觸發該CPU自該正常CPU模式至一系統管理模式(SMM)之一轉變;用僅在該CPU處於SMM時才可執行之SMM駐留韌體驗證簽章及替代影像;以及用該替代影像更新該韌體儲存區,使用僅在該CPU處於SMM時才可執行之SMM駐留韌體發生該更新步驟。
[7] 如申請專利範圍第6項之方法,其中在該驗證步驟之後且在該更新該韌體儲存區之步驟之前,該依照UEFI裝置再啟動或關閉。
[8] 如申請專利範圍第6項之方法,其進一步包括:用該更新程式保存與該更新套裝相關的記憶體位置資訊,在觸發該轉變至SMM之前保存該記憶體位置資訊。
[9] 一種保持電腦可執行指令之非暫時性電腦可讀取媒體,該等電腦可執行指令用於處理一依照統一可延伸韌體介面(UEFI)計算裝置中之系統安全資料庫請求,該等指令在經執行時使至少一個計算裝置:自一作業系統模組接收一已簽署系統安全資料庫修改請求,該請求設法執行該依照UEFI計算裝置中之一系統安全資料庫之一改變,該請求由一韌體請求接收模組處理,該請求接收模組之程式碼在該計算裝置中之一中央處理單元(CPU)於一正常CPU模式中操作時可存取;使用該請求接收模組來觸發該CPU自該正常CPU模式至一系統管理模式(SMM)之一轉變;檢定該經處理請求之一合法性以便用僅在該CPU處於SMM時才可執行之一韌體檢定模組執行一系統安全資料庫之一改變;驗證在該經處理請求中含有之一簽章以便執行該系統安全資料庫之一改變,使用僅在該CPU處於SMM時才可執行之一韌體驗證模組發生該驗證;以及執行使用一韌體更新模組作出請求的該系統安全資料庫之該改變,在該簽章之一成功驗證後發生該改變,該韌體更新模組僅在該CPU處於SMM時才可執行。
[10] 如申請專利範圍第9項之媒體,其中該韌體驗證模組驗證該請求中之該簽章以便使用儲存於一系統安全資料庫中之一密鑰執行該系統安全資料庫之一改變。
[11] 如申請專利範圍第9項之媒體,其中該等指令在經執行時進一步使該計算裝置:用該韌體請求接收模組保存與用於執行一系統安全資料庫之一改變之該請求相關的記憶體位置資訊,以供該韌體檢定模組使用,在觸發該轉變至SMM之前保存該記憶體位置資訊。
[12] 如申請專利範圍第11項之媒體,其中該檢定係藉由該韌體檢定模組對照一先前記錄之請求接收模組載入位址核對記憶體中之該保存位置而執行。
[13] 一種保持電腦可執行指令之非暫時性電腦可讀取媒體,該等電腦可執行指令用於更新一依照統一可延伸韌體介面(UEFI)計算裝置中之一快閃唯讀記憶體(ROM)中之一韌體儲存區域,該等指令在經執行時使至少一個計算裝置:在該依照UEFI裝置處接收一下載更新套裝,其包括一可執行更新程式、該韌體儲存區之一替代影像及該替代影像之一已簽署散列;在該依照UEFI計算裝置中之一中央處理單元(CPU)於一正常CPU模式中操作時,用該更新程式觸發該CPU自該正常CPU模式至一系統管理模式(SMM)之一轉變;用僅在該CPU處於SMM時才可執行之SMM駐留韌體驗證簽章及替代影像;以及用該替代影像更新該韌體儲存區,使用僅在該CPU處於SMM時才可執行之SMM駐留韌體發生該更新。
[14] 如申請專利範圍第13項之媒體,其中在該驗證之後且在該更新該韌體儲存區之前,該依照UEFI裝置再啟動或關閉。
[15] 如申請專利範圍第13項之媒體,其中該等指令在經執行時進一步使該計算裝置:用該更新程式保存與該更新套裝相關的記憶體位置資訊,在觸發該轉變至SMM之前保存該記憶體位置資訊。
[16] 一種依照統一可延伸韌體介面(UEFI)計算裝置,其包括一中央處理單元,該中央處理單元經配置以執行:一韌體請求接收模組,該請求接收模組自一作業系統模組接收一已簽署系統安全資料庫修改請求並處理該請求,該請求設法執行該依照UEFI計算裝置中之一系統安全資料庫之一改變,該請求接收模組在該計算裝置中之一中央處理單元(CPU)於一正常CPU模式中操作時可執行,且在該處理之後觸發該CPU自該正常CPU模式至一系統管理模式(SMM)之一轉變;一韌體檢定模組,該韌體檢定模組檢定該經處理請求之一合法性以便執行一系統安全資料庫之一改變,該韌體檢定模組僅在該CPU處於SMM時才執行;一韌體驗證模組,該韌體驗證模組驗證在該經處理請求中含有之一簽章以便執行該系統安全資料庫之一改變,該韌體驗證模組僅在該CPU處於SMM時才執行;以及一韌體更新模組,該韌體更新模組在該簽章之一成功驗證之後執行該系統安全資料庫之該所請求的改變,該韌體更新模組僅在該CPU處於SMM時才執行。
[17] 如申請專利範圍第16項之裝置,其中該韌體驗證模組驗證該請求中之該簽章以便使用儲存於一系統安全資料庫中之一密鑰執行該系統安全資料庫之一改變。
[18] 一種依照統一可延伸韌體介面(UEFI)計算裝置,其包括一中央處理單元(CPU),該CPU經配置以執行:一下載更新套裝,其包括一可執行更新程式,該更新程式用於更新該依照UEFI計算裝置中之一快閃唯讀記憶體(ROM)中之一韌體儲存區域,該更新套裝進一步包括該韌體儲存區之至少部分之一替代影像及該替代影像之一已簽署散列,該更新程式觸發該CPU自正常CPU模式至一系統管理模式(SMM)之一轉變;用於驗證簽章及替代影像之SMM駐留韌體,該用於驗證該簽章及替代影像之SMM駐留韌體僅在該CPU處於SMM時才執行;以及用於用該替代影像更新該韌體儲存區之SMM駐留韌體,該用於更新該韌體儲存區之SMM駐留韌體僅在該CPU處於SMM時才執行。
类似技术:
公开号 | 公开日 | 专利标题
TWI607376B|2017-12-01|用於處理改變依照統一可延伸韌體介面計算裝置中之系統安全資料庫及韌體儲存區請求的系統及方法
US11120126B2|2021-09-14|Method and system for preventing and detecting security threats
US10516533B2|2019-12-24|Password triggered trusted encryption key deletion
US9021244B2|2015-04-28|Secure boot administration in a Unified Extensible Firmware Interface |-compliant computing device
US8516260B2|2013-08-20|Method, apparatus, and device for providing security among a calling function and a target function
KR20140016280A|2014-02-07|운영 체제 구성 값 보호
US9965268B2|2018-05-08|Method and apparatus for preventing software version rollback
US20060112241A1|2006-05-25|System, method and apparatus of securing an operating system
EP2854066B1|2018-02-28|System and method for firmware integrity verification using multiple keys and OTP memory
TW201500960A|2015-01-01|在配有適用統一可延伸韌體介面|之韌體之計算裝置中的安全性變數變化檢測技術
EP1872231A4|2009-07-29|SECURE STARTING
WO2010127679A1|2010-11-11|Mechanism for updating software
Ruan2014|Boot with integrity, or don’t boot
JP6639620B2|2020-02-05|コード署名の条件付き規定に基づくセキュアクライアント認証
KR20200041639A|2020-04-22|차량용 소프트웨어 업데이트 장치 및 그 제어 방법
Ruan2014|The Engine: Safeguarding Itself before Safeguarding Others
同族专利:
公开号 | 公开日
WO2012139026A3|2013-02-21|
US20120260082A1|2012-10-11|
US9372699B2|2016-06-21|
JP2014513348A|2014-05-29|
TWI607376B|2017-12-01|
WO2012139026A2|2012-10-11|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
CN104850762A|2014-02-15|2015-08-19|联想(新加坡)私人有限公司|防止计算机的动作不良的方法、计算机程序以及计算机|
TWI570592B|2015-07-01|2017-02-11|廣達電腦股份有限公司|更新電腦韌體的系統、方法與電腦可讀取儲存媒體|
CN107430656A|2015-03-23|2017-12-01|英特尔公司|用于os级驱动器的系统管理模式信任建立|
US11126518B1|2020-03-16|2021-09-21|Quanta Computer Inc.|Method and system for optimal boot path for a network device|US7194092B1|1998-10-26|2007-03-20|Microsoft Corporation|Key-based secure storage|
US6715074B1|1999-07-27|2004-03-30|Hewlett-Packard Development Company, L.P.|Virus resistant and hardware independent method of flashing system bios|
TW452733B|1999-11-26|2001-09-01|Inventec Corp|Method for preventing BIOS from viruses infection|
WO2005031573A1|2003-09-30|2005-04-07|Telecom Italia S.P.A.|Method and system for providing access to web services|
KR100987628B1|2004-02-07|2010-10-13|엘지전자 주식회사|엠비디드 컨트롤러의 펌웨어 갱신방법 및 갱신용 펌웨어저장매체|
US8181255B2|2004-06-22|2012-05-15|Nds Limited|Digital rights management system|
US20060143600A1|2004-12-29|2006-06-29|Andrew Cottrell|Secure firmware update|
JP2007047993A|2005-08-09|2007-02-22|Rohm Co Ltd|制御回路、それを用いた電子機器およびファームウェアの更新方法|
US8127144B2|2005-10-12|2012-02-28|Panasonic Corporation|Program loader operable to verify if load-destination information has been tampered with, processor including the program loader, data processing device including the processor, promgram loading method, and integrated circuit|
US8286238B2|2006-09-29|2012-10-09|Intel Corporation|Method and apparatus for run-time in-memory patching of code from a service processor|
US7865775B2|2008-03-27|2011-01-04|Intel Corporation|Remote firmware recovery|
WO2010014109A1|2008-08-01|2010-02-04|Hewlett-Packard Development Company, L.P.|Verifying firmware|
US8364601B2|2008-12-31|2013-01-29|Intel Corporation|Methods and systems to directly render an image and correlate corresponding user input in a secure memory domain|
US9197417B2|2009-04-24|2015-11-24|Microsoft Technology Licensing, Llc|Hosted application sandbox model|
US8522322B2|2010-09-22|2013-08-27|Intel Corporation|Platform firmware armoring technology|
US8428929B2|2010-09-30|2013-04-23|Intel Corporation|Demand based USB proxy for data stores in service processor complex|
US9256745B2|2011-03-01|2016-02-09|Microsoft Technology Licensing, Llc|Protecting operating system configuration values using a policy identifying operating system configuration settings|US8863109B2|2011-07-28|2014-10-14|International Business Machines Corporation|Updating secure pre-boot firmware in a computing system in real-time|
US8412945B2|2011-08-09|2013-04-02|CloudPassage, Inc.|Systems and methods for implementing security in a cloud computing environment|
WO2013067486A1|2011-11-04|2013-05-10|Insyde Software Corp.|Secure boot administration in a unified extensible firmware interface - compliant computing device|
US9037823B2|2012-09-14|2015-05-19|Intel Corporation|Protecting IAT/EAT hooks from rootkit attacks using new CPU assists|
US20140189336A1|2012-12-28|2014-07-03|Miguel Ballesteros|Methods and apparatus to support authenticated variables|
US9632797B2|2013-01-31|2017-04-25|Hewlett Packard Enterprise Development Lp|Updating a commit list to indicate data to be written to a firmware interface variable repository|
WO2014150478A1|2013-03-15|2014-09-25|Insyde Software Corp.|System and method for managing and diagnosing a computing device equipped with unified extensible firmware interface -compliant firmware|
TW201506788A|2013-05-01|2015-02-16|Insyde Software Corp|在配有適用統一可延伸韌體介面(uefi)之韌體之計算裝置中的安全啓動覆蓋技術|
US9058504B1|2013-05-21|2015-06-16|Malwarebytes Corporation|Anti-malware digital-signature verification|
EP2808818B1|2013-05-29|2016-07-13|Nxp B.V.|Processing system|
US9721101B2|2013-06-24|2017-08-01|Red Hat, Inc.|System wide root of trust chaining via signed applications|
US9779241B2|2013-09-25|2017-10-03|Cisco Technology, Inc.|Synchronization of UEFI secure boot variables on a managed server|
US9354894B2|2013-10-11|2016-05-31|International Business Machines Corporation|Pluggable cloud enablement boot device and method that determines hardware resources via firmware|
US10031761B2|2013-10-11|2018-07-24|International Business Machines Corporation|Pluggable cloud enablement boot device and method|
US9384006B2|2013-10-11|2016-07-05|Globalfoundries Inc.|Apparatus and methods for automatically reflecting changes to a computing solution into an image for the computing solution|
US20150154124A1|2013-12-02|2015-06-04|Intel Corporation|Secure data partition in nonvolatile memory systems|
JP6429455B2|2013-12-03|2018-11-28|キヤノン株式会社|画像形成装置及びその制御方法、並びにプログラム|
US9575791B2|2014-02-12|2017-02-21|Dell Products, Lp|Unified extensible firmware interface system management mode initialization protections with system management interrupt transfer monitor sandboxing|
US9830457B2|2015-05-05|2017-11-28|Dell Products, L.P.|Unified extensible firmware interfacecredential-based access of hardware resources|
US10367834B2|2015-05-12|2019-07-30|CloudPassage, Inc.|Systems and methods for implementing intrusion prevention|
CN108351923B|2016-01-28|2021-10-01|惠普发展公司,有限责任合伙企业|与统一可扩展固件接口系统可执行的脚本有关的阈值|
EP3485416B1|2016-10-21|2020-11-25|Hewlett-Packard Development Company, L.P.|Bios security|
US10872155B2|2016-11-16|2020-12-22|Samsung Electronics Co., Ltd.|Computing system for managing firmware and firmware managing method thereof|
KR20190063264A|2017-11-29|2019-06-07|한국전자통신연구원|가상 트러스트 컴퓨팅 베이스를 이용한 기기 보안성 검증 방법 및 장치|
CN110059475A|2018-01-18|2019-07-26|伊姆西Ip控股有限责任公司|用于数据保护的方法、设备和计算机程序产品|
WO2019203808A1|2018-04-17|2019-10-24|Hewlett-Packard Development Company, L.P.|Virtual device handlers to process update capsule payloads|
RU2755771C1|2020-08-03|2021-09-21|Общество С Ограниченной Ответственностью "Кировский Региональный Центр Деловой Информации"|Способ запуска гипервизора в компьютерной системе на ранней стадии загрузки компьютера с внешнего аппаратного устройства|
法律状态:
优先权:
申请号 | 申请日 | 专利标题
US201161473234P| true| 2011-04-08|2011-04-08||
[返回顶部]